﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using appladen.contracts.data;
using NUnit.Framework;

namespace appladen.seitenwerk.tests
{
    [TestFixture]
    public class Seiten_erstellen_tests
    {
        readonly List<CSVZeile> _mockData = new List<CSVZeile>()
                               {
                                    new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }}, new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                   new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                                                               new CSVZeile() {
                                       Werte = new List<string>()
                                                               {
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",
                                                                   "jaLKDJ",                                                                   
                                                               }},
                               };
        
        
        [Test]
        public void should_not_fail()
        {
            IEnumerable<Seite> seiten = new List<Seite>();            

            var sut = new Seiten_erstellen();
            sut.Result += x => seiten = x;
            sut.Process(new Tuple<CSVZeile, IEnumerable<CSVZeile>>(new CSVZeile(), _mockData));
            Assert.That(seiten,Is.Not.Empty);
            Assert.That(seiten.First().Zeilen.Count(), Is.EqualTo(20));

        }

    }
}
